1. Field of the Invention
The present invention relates generally to communications over packet networks. More particularly, the present invention relates to error correction for modem and fax communications over a packet network, such as the Internet, utilizing the Internet Protocol (“IP”).
2. Related Art
In recent years, packet-based networks, such as the Internet, have begun to replace the traditional analog telephone networks for transportation of voice and data. For example, with the emergence of voice over IP (“VoIP”), telephone conversations may now be captured, packetized and transported over the Internet. In a conventional VoIP system, telephone conversations or analog voice may be transported over the local loop or the public switch telephone network (“PSTN”) to the central office (“CO”). From the CO, the analog voice is transported to a gateway device at the edge of the packet-based network. The gateway device converts the analog voice or speech to packetized data using a codec (coder/decoder), according to one of various existing protocols, such as G.729, G.711, G.723.1, etc. Next, the packetized data is transmitted over the Internet using the Internet Protocol for reception by a remote gateway device and conversion back to analog voice.
More recently, focus has been directed toward using the existing packet-based network and gateway devices, which have been designed to support the transportation of analog voice or speech over IP, to further support facsimile (“fax”) communication over packet networks (e.g., Fax over Internet Protocol (“FoIP”)) and modem communication over packet networks (e.g., Modem over Internet Protocol (“MoIP”)). FIG. 1 illustrates a block diagram of a conventional communication model for data communication over a packet-based network, such as the Internet. As shown, communication model 100 includes first client communication device 110 in communication with first gateway communication device 120 over PSTN providing transmit and receive channels 112 and 114. Communication model 100 further includes second client communication device 150 in communication with second gateway communication device 140 over PSTN providing transmit and receive channels 144 and 142. Communication model 100 enables communications between first gateway communication device 120 and second gateway communication device 140 via a packet network 130 utilizing the Internet Protocol. The Internet Protocol implements the network layer (layer 3) of a network protocol, which contains a network address and is used to route a message to a different network or subnetwork. The Internet Protocol further accepts packets from the layer 4 transport protocol, such as Transmission Control Protocol (“TCP”) or User Data Protocol (“UDP”), and adds its own header and delivers the data to the layer 2 data link protocol. TCP provides transport functions, which ensures that the total amount of bytes sent is received correctly at the other end. UDP, which is part of the TCP/IP suite, is an alternate transport that does not guarantee delivery. It is widely used for real-time voice and video transmissions where erroneous packets are not retransmitted.
For purposes of FoIP, communication devices 110, 120, 140 and 150 are capable of performing facsimile functions. For MoIP, communication devices 110, 120, 140 and 150 are capable of performing modem functions. Facsimile and modems devices are capable of converting digital pulse to audio frequencies (modulation) and vice versa (demodulation) for transmission of fax or modem data over an analog telephone line using corresponding transmission modulation systems. For example facsimile devices may support a variety fax modulation standards, such as those defined in the ITU (International Telecommunications Union) Group 3 protocols: V.21, V.17, V.27 or V.29, for example. Similarly, modems may support a variety of data modulation standards, such as ITU standards: V.22bis, V.34, V.90 or V.92, etc. Communication devices 110, 120, 140 and 150 may also be cable or DSL modems, which are all digital and technically not modems, but referred to as modems in the industry. Most modems are also capable of supporting various voice and facsimile standards.
Conventionally, the communication process for a FoIP session begins when first client fax ((“F1”) or first client communication device 110) calls first gateway ((“G1”) or first gateway communication device 120). As a result, G1 calls second gateway ((“G2”) or second gateway communication device 140), and G2 in turn calls second client fax ((“F2”) or second client communication device 150).
Typically, G1 and G2, in their default mode of operation, communicate in voice mode and are configured to use a compressed voice protocol, such as the ITU standard G.723.1. As the calling device, F1 transmits a calling (“CNG”) tone (a 1100 hertz (Hz)) half-second tone repeated every 3.5 seconds) when initiating a call to F2. This CNG tone causes G1 and G2 to switch to an uncompressed voice protocol, such as ITU standard G.711, which provides toll quality audio at 64 Kbps using either A-Law or μ-Law pulse code modulation methods. This uncompressed digital format is used in order to allow easy connections to legacy telephone networks. By switching to G.711, the tones generated by F1 may propagate through G1 and G2 in a more intact manner in order to reach F2 at the other side.
One existing method provides for maintaining G1 and G2 in G.711 or “pass through” mode, such that F1 and F2 are able to exchange control commands over packet network 130 and transfer data using G.711 packets using the Internet Protocol. However, such solution suffers from various problems, such as packet losses. Similar problems, including packet losses, also occur during MoIP sessions in pass through mode. Packet losses degrade communication over a packet network, resulting in communication errors between the client devices during FoIP and/or MoIP sessions. Packet losses are particularly problematic over wide-area connections.
One solution advanced to overcome packet losses while in the pass through mode for MoIP and FoIP sessions is the use of Generic Forward Error Correction (“FEC”) for encoding data transmitted over the packet network, as described in the Request for Comments (“RFC”) document 2733 (“An RTP Payload Format for Generic Forward Error Correction” by J. Rosenberg, December 1999) which his hereby incorporated by reference. In general FEC compensates for packet losses by transmitting FEC packets in addition to the original “media” stream (i.e., voice, fax or modem signals). At the receiver, the FEC packet and the original media are received. If no media packets have been lost, the FEC packet can be ignored. In the event of media packet losses, the FEC packets can be combined with other media and the FEC packets that have been received, resulting in recovery of the missing media packets.
Depending on the particular encoding scheme selected for FEC encoding, a tradeoff between overhead, delay, and recoverability results. For example, a higher level or more complex FEC encoding scheme may provide better recoverability but may result in greater overhead and longer delay. Conversely, a lower level or less complex FEC encoding scheme may require less overhead and incur less delay, but may not provide the same degree of recoverability as the higher level encoding scheme.
In practice, a fixed low-level FEC encoding scheme is used, primarily because of the greater overhead and longer delay associated with higher level and more complex FEC encoding schemes. In a fixed or static data encoding algorithm, a selected FEC encoding scheme is used for encoding all voice, fax and modem data (i.e., for all phases) during the session. A fixed low level FEC encoding scheme is normally satisfactory for voice communication (VoIP) where small losses of voice data are unperceivable or minimally perceivable by users. However, for FoIP and MoIP communications, the loss of critical data could result in such severe errors, such as loss of connection or the necessity for retraining, significantly degrading performance and creating dissatisfaction in customers.